package com.xiaoniu.forum.dao;

import com.xiaoniu.forum.entity.MemberMessageEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaoniu.forum.entity.UnreadEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 消息表，用户与用户对话的数据就存在该表
注意：该表不仅仅可用于用户与用户对话，还可以用于系统给用户发送消息
       而且用户点击消息后，不一定是打开对话框页面，有可能是跳转到某个页面
 * 
 * @author xiaoniu
 * @email 55333@qq.com
 * @date 2021-03-24 09:19:33
 */
@Mapper
public interface MemberMessageDao extends BaseMapper<MemberMessageEntity> {

    /**
     * 传入用户id，根据发送人id分组查询该用户未读消息数
     * @param memberId 用户id
     * @return key:发送人id    value:未读记录数
     */
    List<UnreadEntity> groupQueryUnreadCountBySenderId(String memberId);


    /**
     * 批量已读消息
     */
    void batchRead(Map<String,String> map);


    /**
     * 当前用户发送的最后一批消息
     * 查询当前用户发送消息，根据接收者分组，拿每组最新的消息
     */
    List<MemberMessageEntity> mySendLastBatchMessage(String memberId);

    /**
     * 当前用户接收的最后一批消息
     * 查询当前用户接收的消息，根据发送者分组，拿每组最新的消息
     */
    List<MemberMessageEntity> myReceiveLastBatchMessage(String memberId);

}
